1. Field of the Invention
The invention relates to reduction of power consumption. More specifically, the invention relates to reducing power consumption of an integrated microprocessor in a USB device to satisfy USB enumeration power requirements for bus powered devices.
2. Related Art
The Universal Serial Bus follows a protocol defined in Universal Serial Bus Specification, Version 1.0 (USB Spec). Modification of this specification can be expected from time to time. However, the USB Spec provides a standardized approach for peripheral interconnection with a host computer. The USB is set up in a tiered topology with a host on the top tier and USB hubs and functions on subsequent tiers. Each USB device, whether it be a hub or a function, has associated therewith a serial interface engine (SIE) which provides an interface between the hub or function and the transceiver which transmits or receives signals across the serial line. Generally, the SIE takes care of all the USB low level protocol matters such as bit stuffing, cyclic redundancy checks (CRCs), token generation, and handshaking.
From a power perspective, two types of USB devices exist, bus powered devices and self-powered devices. As the name implies, bus powered devices receive their required power supply from the USB. The USB Spec mandates that no bus powered device shall draw more than 1 unit current (100 mA) during enumeration. This extreme power limitation has precluded the integration of general purpose high performance microcontrollers into the USB module. Instead, stand alone USB controllers have been used to implement USB devices. This reduces a flexibility of the devices and requires increased technical support as multiple products must be maintained and supported instead of a single general purpose high performance microcontroller.
In view of the foregoing, it would be desirable to be able to reduce the power consumption of a general purpose high performance microcontroller integrated into a USB module so as to satisfy the USB specification during enumeration.